home *** CD-ROM | disk | FTP | other *** search
/ Adobe Graphics & Publishing SDK 1996 December / Adobe Graphics & Publishing SDK 1996 December.iso / pc / pm65sdk / sourcecode / includes / ciinterfacemanager.h < prev    next >
C/C++ Source or Header  |  1996-11-18  |  2KB  |  61 lines

  1. /**[f******************************************************************
  2.  *
  3.  *              IntfMgr.h -- Interface Manager
  4.  *
  5.  *              Copyright 1996(c) Adobe Systems, Inc.
  6.  *
  7.  *
  8.  *              Interface manager. It will handle Acquire and Release of
  9.  *              PageMaker interfaces. 
  10.  * $Revision:   1.1  $
  11.  *
  12.  * $Author:   pnorton  $
  13.  * $Date:   27 Aug 1996 15:03:44  $
  14.  * $Log:   U:/pmsdk/includes/vcs/ciintmgr.hv  $
  15.  * 
  16.  *
  17.  *
  18.  *
  19.  **f]******************************************************************/
  20.  
  21. #ifndef __INTFMGR_H
  22. #define __INTFMGR_H
  23. #include "PMTypes.h"
  24.  
  25. typedef void *(CIInterfaceFactory)(char *);
  26.  
  27. class CIInterfaceManager 
  28. {
  29. public:
  30.     // Plugin can acquire pre-defined interface from PageMaker. PageMaker pre-defined
  31.     // interface are id based. The following methods should be used by plugin to
  32.     // acquire and release pre-defined PageMaker interfaces. SHOULD ONLY BE CALLED
  33.     // TO ACQUIRE AND RELEASE PRE-DEFINED PAGEMAKER INTERFACES.
  34.     virtual PMErr  AcquirePMInterface(unsigned long id, void **ppInterface) = 0;
  35.     virtual PMErr    ReleasePMInterface(void *pInterface) = 0;
  36.  
  37.     // Plugin can acquire interfaces that are published by plugins. If you acquire an
  38.     // interface by name. You should also free the interface by name. Plugin that owns
  39.     // the interface will receive a kPMAcquireInterface message to provide the
  40.     // interface when the following AcquirePMInterface method is called. Plugin that
  41.     // owns the interface will receive a kPMReleaseInterface message when the following
  42.     // ReleasePMInterface method is called.
  43.     virtual PMErr    AcquirePMInterface(char *pInterfaceName, void **ppInterface) = 0;
  44.     virtual PMErr    ReleasePMInterface(char *pInterfaceName, void **ppInterface) = 0;
  45.  
  46.     // Plugin can add and remove interface name to PageMaker. The published interface
  47.     // can be acquired through the AcquirePMInterface (by name). Plugin must call 
  48.     // RemovePMInterface to remove an interface name from PageMaker. Only plugin that
  49.     // owns the interface can remove the interface from PageMaker.
  50.     virtual PMErr    AddPMInterface(char *pInterfaceName)=0;
  51.     virtual PMErr        RemovePMInterface(char *pInterfaceName) = 0;
  52. };
  53.  
  54. typedef struct _PMInterface {
  55.     char *pInterfaceName;
  56.     void *pInterface;
  57. } PMInterface, *LPPMInterface;
  58.  
  59. #endif
  60.  
  61.